package com.hejjon;

/**
 *
 *  13. 罗马数字转整数
 *      https://leetcode.cn/problems/roman-to-integer/
 * @author: caoshi
 * @date: 2023-01-26 13:54:10
 * @since: 1.0
 */
public class RomanToInt {

    public static void main(String[] args) {
        int mcmxciv = romanToInt("LI");
        System.out.println(mcmxciv);
    }


    public static int romanToInt(String s) {

        int sum = 0;
        int preNum = getInt(s.charAt(0));
        for (int i = 1; i < s.length(); i++) {
            int num = getInt(s.charAt(i));
            if (preNum < num) {
                sum -= preNum;
            } else {
                sum += preNum;
            }
            preNum = num;
        }

        sum += preNum;

        return sum;
    }


    public static int getInt(char c) {
        switch (c) {
            case 'I':
                return 1;
            case 'V':
                return 5;
            case 'X':
                return 10;
            case 'L':
                return 50;
            case 'C':
                return 100;
            case 'D':
                return 500;
            case 'M':
                return 1000;
        }
        return -1;
    }


}
